DROP TABLE ASM_SWITCH_CONTRATTI_1;
CREATE TABLE ASM_SWITCH_CONTRATTI_1 AS
select co.codice_contratto,co.data_chiusura,fo.codice_allacciamento,fo.progressivo_utenza,codice_tipo_uso,codice_tariffa,
codice_uso,co.potenza_impegnata,co.potenza_tollerata,fasi_previste,tensione_prevista,
PARTITA_IVA,CODICE_FISCALE,
codice_modello_contatore_1,matricola_contatore_1,
codice_modello_contatore_2,matricola_contatore_2,
codice_modello_contatore_3,matricola_contatore_3,
UT.CODICE_GRUPPO_LETTURA,
CO.CODICE_GRUPPO_BOLLETTAZIONE
from db5.contratti co,
(select distinct codice_allacciamento,progressivo_utenza,max(codice_contratto) codice_contratto from db5.forniture 
where codice_servizio ='E'
and codice_gestione='UNRG'
group by codice_allacciamento,progressivo_utenza) fo,

db5.utenze ut,db5.contratti_aggregazioni ca,DB5.PERSONE
where 
   co.data_chiusura between to_date('01/01/2012','dd/MM/YYYY') AND to_date('01/04/2012','dd/MM/YYYY')
and co.codice_gestione='UNRG'
and co.codice_servizio='E'
and co.codice_contratto=fo.codice_contratto
and co.codice_gestione=ut.codice_gestione
and fo.codice_allacciamento=ut.codice_allacciamento
and fo.progressivo_utenza=ut.progressivo_utenza
AND CA.CODICE_UTENTE=CO.CODICE_UTENTE
AND CO.STATO_CONTRATTO='C'
AND CODICe_PERSONA=CA.CODICE_PERSONA_UTILIZZATORE;

DROP TABLE ASM_SWITCH_CONTRATTI_2;
CREATE TABLE ASM_SWITCH_CONTRATTI_2 AS
select co.codice_contratto,co.data_avvio,fo.codice_allacciamento,fo.progressivo_utenza,CO.codice_tipo_uso,CO.codice_tariffa,
CO.codice_uso,co.potenza_impegnata,co.potenza_tollerata,UT.fasi_previste,UT.tensione_prevista,PERSONE.PARTITA_IVA,PERSONE.CODICE_FISCALE,

UT.codice_modello_contatore_1,UT.matricola_contatore_1,
UT.codice_modello_contatore_2,UT.matricola_contatore_2,
UT.codice_modello_contatore_3,UT.matricola_contatore_3,
UT.CODICE_GRUPPO_LETTURA,CO.CODICE_GRUPPO_BOLLETTAZIONE
from contratti co,forniture fo,utenze ut,contratti_aggregazioni ca,PERSONE,ASM_SWITCH_CONTRATTI_1 SW1
where --data_avvio = to_date('01/04/2012','dd/mm/yyyy')
 co.codice_gestione=fo.codice_gestione
and co.codice_servizio=fo.codice_servizio
and FO.codice_servizio=UT.codice_servizio
and co.codice_contratto=fo.codice_contratto
and FO.codice_gestione=ut.codice_gestione
and fo.codice_allacciamento=ut.codice_allacciamento
and fo.progressivo_utenza=ut.progressivo_utenza
AND CA.CODICE_UTENTE=CO.CODICE_UTENTE
and fo.codice_allacciamento=SW1.codice_allacciamento
and fo.progressivo_utenza=SW1.progressivo_utenza
AND CO.STATO_CONTRATTO='A'
AND CODICe_PERSONA=CA.CODICE_PERSONA_UTILIZZATORE;






select 'Chiuso' " Stato ",
c.CODICE_ALLACCIAMENTO,
c.PROGRESSIVO_UTENZA,c.codice_contratto,
to_char(c.data_chiusura),
c.CODICE_TIPO_USO,
c.CODICE_TARIFFA,
c.CODICE_USO,
to_char(c.POTENZA_IMPEGNATA),
to_char(c.POTENZA_TOLLERATA),
c.FASI_PREVISTE,
c.TENSIONE_PREVISTA,
c.PARTITA_IVA,
c.CODICE_FISCALE,
c.CODICE_MODELLO_CONTATORE_1,
c.MATRICOLA_CONTATORE_1,
c.CODICE_MODELLO_CONTATORE_2,
c.MATRICOLA_CONTATORE_2,
c.CODICE_MODELLO_CONTATORE_3,
c.MATRICOLA_CONTATORE_3,
c.CODICE_GRUPPO_LETTURA,
c.CODICE_GRUPPO_BOLLETTAZIONE



from ASM_SWITCH_CONTRATTI_1 c


union 

select 'Aperto' " Stato ",
a.CODICE_ALLACCIAMENTO,
a.PROGRESSIVO_UTENZA,a.codice_contratto,
DECODE (a.data_avvio,c.data_chiusura,null,a.data_avvio) data_operazione,
DECODE (a.CODICE_TIPO_USO,c.CODICE_TIPO_USO,null,a.CODICE_TIPO_USO) CODICE_TIPO_USO,
DECODE (a.CODICE_TARIFFA,c.CODICE_TARIFFA,null,a.CODICE_TARIFFA) CODICE_TARIFFA,
DECODE (a.CODICE_USO,c.CODICE_USO,null,a.CODICE_USO) CODICE_USO,
DECODE (a.POTENZA_IMPEGNATA,c.POTENZA_IMPEGNATA,null,a.POTENZA_IMPEGNATA) POTENZA_IMPEGNATA,
DECODE (a.POTENZA_TOLLERATA,c.POTENZA_TOLLERATA,null,a.POTENZA_TOLLERATA) POTENZA_TOLLERATA,
DECODE (a.FASI_PREVISTE,c.FASI_PREVISTE,null,a.FASI_PREVISTE) FASI_PREVISTE,
DECODE (a.TENSIONE_PREVISTA,c.TENSIONE_PREVISTA,null,a.TENSIONE_PREVISTA) TENSIONE_PREVISTA,
DECODE (a.PARTITA_IVA,c.PARTITA_IVA,null,a.PARTITA_IVA) PARTITA_IVA,
DECODE (a.CODICE_FISCALE,c.CODICE_FISCALE,null,a.CODICE_FISCALE) CODICE_FISCALE,
DECODE (a.CODICE_MODELLO_CONTATORE_1,c.CODICE_MODELLO_CONTATORE_1,null,a.CODICE_MODELLO_CONTATORE_1) CODICE_MODELLO_CONTATORE_1,
DECODE (a.MATRICOLA_CONTATORE_1,c.MATRICOLA_CONTATORE_1,null,a.MATRICOLA_CONTATORE_1) MATRICOLA_CONTATORE_1,
DECODE (a.CODICE_MODELLO_CONTATORE_2,c.CODICE_MODELLO_CONTATORE_2,null,a.CODICE_MODELLO_CONTATORE_2) CODICE_MODELLO_CONTATORE_2,
DECODE (a.MATRICOLA_CONTATORE_2,c.MATRICOLA_CONTATORE_2,null,a.MATRICOLA_CONTATORE_2) MATRICOLA_CONTATORE_2,
DECODE (a.CODICE_MODELLO_CONTATORE_3,c.CODICE_MODELLO_CONTATORE_3,null,a.CODICE_MODELLO_CONTATORE_3) CODICE_MODELLO_CONTATORE_3,
DECODE (a.MATRICOLA_CONTATORE_3,c.MATRICOLA_CONTATORE_3,null,a.MATRICOLA_CONTATORE_3) MATRICOLA_CONTATORE_3,
DECODE (a.CODICE_GRUPPO_LETTURA,c.CODICE_GRUPPO_LETTURA,null,a.CODICE_GRUPPO_LETTURA) CODICE_GRUPPO_LETTURA,
DECODE (a.CODICE_GRUPPO_BOLLETTAZIONE,c.CODICE_GRUPPO_BOLLETTAZIONE,null,a.CODICE_GRUPPO_BOLLETTAZIONE) CODICE_GRUPPO_BOLLETTAZIONE


from ASM_SWITCH_CONTRATTI_1 c,ASM_SWITCH_CONTRATTI_2 a
where a.codice_allacciamento=c.codice_allacciamento
and   a.progressivo_utenza=c.progressivo_utenza